1. Field of the Invention
The present invention relates to systems and methods for executing distributed software. In particular, the invention relates to such systems and methods which conform with hard real-time requirements.
2. Brief Description of Related Art
Conventional systems for executing distributed software may comprise a plurality of nodes and a communication channel, wherein the system is configured such that the nodes are allowed to transmit data across the communication channel. Examples of such systems also include so called embedded systems in which the nodes which can also be referred to as electronic control units or computers and which perform tasks of the software are encapsulated by devices which they control. Examples of embedded systems include automotive systems, automation systems and avionics systems. An automotive system, for example, may in particular include plural devices for operating brakes, plural devices for sensing wheel speeds, a device for sensing a velocity of the vehicle etc. which communicate across a communication channel and which are configured to perform an operation of an anti-blocking system (ABS). Since the operation of an anti-blocking system is safety critical to the vehicle and its passengers, it is required that repetitive readings of sensors, calculations and updating of actuators is performed periodically, for example, every five milliseconds. In practice, such system has to fulfill hard real-time requirements, which means that a correctness of an operation depends not only upon a logical correctness of the operation but also upon a time at which it is performed. An operation performed later than a deadline defined within the system is, by definition, incorrect, and usually has no value.
The conventional distributed software is typically configured such that the software is separated into a plurality of tasks which the system has to perform, wherein the tasks can be executed by different nodes and wherein also each single node may execute plural tasks. For the operation of the software it is possible that tasks use output signals of sensors as their input, that tasks provide output signals to actuators and that different tasks communicate with each other by exchanging data. Thus, a schedule and execution of tasks may depend on external events which can be detected by the system by means of one or more sensors. Thus, a mode of operation of any system on any node may change over time, and also demands on the communication channel with respect to band width may change over time. However, in the hard real-time system it has to be assured that a given band width provided by the communication channel is sufficient to guarantee fault free operation of the hard real-time system during each possible combination of operational modes of all of the involved nodes.
It is well-known in the art that it is not always easy to design a distributed software such that it fulfills hard real-time requirements.
Various efforts have already been made for improving a design of distributed software. For example, a project called “Giotto” at the University of California at Berkeley, USA resulted in a programming methodology for embedded control systems running on possibly distributed platforms. This methodology includes a concept of defining logical execution timing of execution of tasks under hard real-time conditions. This concept is referred to as “LET” (Logical Execution Time) and illustrated in more detail in the article of T. A. Henzinger et al., “Giotto: A time-triggered language for embedded programming”, Proceedings of the First International Workshop on Embedded Software (EMSOFT), Lecture Notes in Computer Science 2211, Springer-Verlag, 2001, pages 166 to 184. The entire contents of this document are incorporated herein by reference.
A language for specifying a timing behavior of distributed software has been developed by Wolfgang Pree and his team in an ad personam research project at the Paris Lodron University of Salzburg, Austria. This language is referred to “TDL” (Timing Definition Language) and defined in the report of Josef Templ, TDL Specification Report, Technical Report T004 (revises T001), November 2004, pages 1 to 26. The entire contents of this document are incorporated herein by reference.
A data exchange format which can be used in distributed software systems for data exchange across a communication channel is defined in the document “FIBEX—Field Bus Exchange Format”, MCD-2[FBX] Version 1.1, Release Version, Association for Standardisation of Automation and Measuring Systems, Dated: Jan. 1, 2005, ASAM e.V., pages 1 to 82. The entire contents of this document are incorporated herein by reference.
It has been found that it is difficult to design a distributed software in which a fault free operation is guaranteed for all possible operational modes included in the system.